var formChecker = null;
function swfUploadLoaded() {
    var btnSubmit = document.getElementById("btnSubmit");

    btnSubmit.onclick = doSubmit;
    btnSubmit.disabled = true;

    /*txtLastName.onchange = validateForm;
    txtFirstName.onchange = validateForm;
    txtEducation.onchange = validateForm;
    txtReferences.onchange = validateForm;
    */
    formChecker = window.setInterval(validateForm, 1000);

    validateForm();
}

function validateForm() {
    //var txtLastName = document.getElementById("lastname");
    //var txtFirstName = document.getElementById("firstname");
    //var txtEducation = document.getElementById("education");
    //var txtFileName = document.getElementById("txtFileName");
    //var txtReferences = document.getElementById("references");

    var isValid = true;
    /*if (txtLastName.value === "") {
        //isValid = false;
    }
    if (txtFirstName.value === "") {
        //isValid = false;
    }
    if (txtEducation.value === "") {
        //isValid = false;
    }
    if (txtFileName.value === "") {
        //isValid = false;
    }
    if (txtReferences.value === "") {
        //isValid = false;
    }*/

    document.getElementById("btnSubmit").disabled = !isValid;

}

// Called by the submit button to start the upload
function doSubmit(e) {
    if (formChecker != null) {
        clearInterval(formChecker);
        formChecker = null;
    }

    e = e || window.event;
    if (e.stopPropagation) {
        e.stopPropagation();
    }
    e.cancelBubble = true;

    try {
        swfu.startUpload();
    } catch (ex) {

    }
    return false;
}

// Called by the queue complete handler to submit the form
function uploadDone() {
    try {
        //alert(upload_url);
        var envio = null;
        var redireccion = swfu.settings.upload_url.toString();
        var redirecciontemp = redireccion.split('/');
        if (redirecciontemp[1]=='TipodeLugar') {
             envio = "TipodeLugar";
        }
        if (redirecciontemp[1] == 'Lugar') {
             envio = "Lugar";
        }
        if (redirecciontemp[1] == 'TipodeMuestra') {
             envio = "TipodeMuestra";
        }
        document.forms[0].submit();
        window.location = "/"+envio+"/Index";
       
    } catch (ex) {
        alert("Error submitting form");
    }
}

function fileDialogStart() {
    var txtFileName = document.getElementById("txtFileName");
    txtFileName.value = "";

    this.cancelUpload();
}



function fileQueueError(file, errorCode, message) {
    try {
        // Handle this error separately because we don't want to create a FileProgress element for it.
        switch (errorCode) {
            case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
                alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
                return;
            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
                alert("El archivo seleccionado  es demasiado grande.");
                this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
            case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
                alert("The file you selected is empty.  Please select another file.");
                this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
            case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
                alert("El tipo  de archivo seleccionado  no es permitido.");
                this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
            default:
                alert("Error al  subir el archivo. Intenetelo nuevamente.");
                this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
        }
    } catch (e) {
    }
}

function fileQueued(file) {
    try {
        var txtFileName = document.getElementById("txtFileName");
        txtFileName.value = file.name;
    } catch (e) {
    }

}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
    validateForm();
}

function uploadProgress(file, bytesLoaded, bytesTotal) {

    try {
        var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

        file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
        var progress = new FileProgress(file, this.customSettings.progress_target);
        progress.setProgress(percent);
        progress.setStatus("Uploading...");
    } catch (e) {
    }
}

function uploadSuccess(file, serverData) {
    try {
        file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
        var progress = new FileProgress(file, this.customSettings.progress_target);
        progress.setComplete();
        progress.setStatus("Complete.");
        progress.toggleCancel(false);

        if (serverData === " ") {
            this.customSettings.upload_successful = false;
        } else {
            this.customSettings.upload_successful = true;
            document.getElementById("hidFileID").value = serverData;
        }

    } catch (e) {
    }
}

function uploadComplete(file) {
    try {

        if (this.customSettings.upload_successful) {
            this.setButtonDisabled(true);
            uploadDone();
        } else {
            file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
            var progress = new FileProgress(file, this.customSettings.progress_target);
            progress.setError();
            progress.setStatus("File rejected");
            progress.toggleCancel(false);

            var txtFileName = document.getElementById("txtFileName");
            txtFileName.value = "";
            validateForm();

            alert("There was a problem with the upload.\nThe server did not accept it.");
        }
    } catch (e) {
    }
}

function uploadError(file, errorCode, message) {
    try {

        if (errorCode === SWFUpload.UPLOAD_ERROR.FILE_CANCELLED) {
            // Don't show cancelled error boxes
            return;
        }

        var txtFileName = document.getElementById("txtFileName");
        txtFileName.value = "";
        validateForm();

        // Handle this error separately because we don't want to create a FileProgress element for it.
        switch (errorCode) {
            case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
                alert("There was a configuration error.  You will not be able to upload a resume at this time.");
                this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
                return;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
                alert("You may only upload 1 file.");
                this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                break;
            default:
                alert("An error occurred in the upload. Try again later.");
                alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                return;
        }


        file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
        var progress = new FileProgress(file, this.customSettings.progress_target);
        progress.setError();
        progress.toggleCancel(false);

        switch (errorCode) {
            case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
                progress.setStatus("Upload Error");
                this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
                progress.setStatus("Upload Failed.");
                this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.IO_ERROR:
                progress.setStatus("Server (IO) Error");
                this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
                progress.setStatus("Security Error");
                this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
                progress.setStatus("Upload Cancelled");
                this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                progress.setStatus("Upload Stopped");
                this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
                break;
        }
    } catch (ex) {
    }
}
